
package com.insigma.business.qrcode.soldier.service;



import com.insigma.business.qrcode.soldier.dto.SoldierApplyInfoBSearcher;
import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import com.insigma.business.qrcode.soldier.entity.SoldierApplyInfoDO;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;


public interface SoldierApplyInfoService {

    
    List<SoldierApplyInfoDO> search(final SoldierApplyInfoBSearcher innerSearcher);

    
    SoldierApplyInfoDO get(final String id);

    
    Integer insert(final SoldierApplyInfoDO soldierApplyInfo);

    
    Integer update(final SoldierApplyInfoDO soldierApplyInfo);

    
    Integer delete(final String id, final String modifierType, final String modifierId);

    
    List<SoldierApplyInfoDO> listByProcInstIds(Set<String> procInstIds);

    
    SoldierApplyInfoDO getByIdCardNo(String idCardNo);

    
    void afterSoldierChecked(String processInstanceId);


    List<SoldierApplyInfoDO> listByProcInstIdsSearcher(SoldierApplyInfoBSearcher soldierApplyInfoBSearcher);

    
    SoldierApplyInfoDO getBySoldierId(String soldierId);

    
    List<SoldierApplyInfoDO> searchByAreaLikeStatusManual(SoldierApplyInfoBSearcher soldierApplyInfoBSearcher);

    
    List<SoldierApplyInfoDO> searchByAreaLikeAndStatusList(SoldierApplyInfoBSearcher soldierApplyInfoBSearcher);

    
    void afterSoldierApplySucc(String id);

    List<Map<String, Object>> querySoldierManualCheckDetail(String adminAreaCode);

    List<Map<String, Object>> querySoldierManualCheckDetail(String adminAreaCode, Date beginDate, Date endDate);

    
    List<DataStatsCDO> querySoldierManualStats(String adminAreaCode, String type);

    List<DataStatsCDO> querySoldierManualStats(String adminAreaCode, String type, Date beginDate, Date endDate);

    Integer realDelete(String id);

    Integer realDelete(String id, String modifierType, String modifierId);

    Integer deleteByIdCardNo(String idCardNo, String modifierType, String modifierId);

    List<SoldierApplyInfoDO> listBySoldierId(String soldierId);

    List<SoldierApplyInfoDO> listBySoldierId(String soldierId, String applyType);

    SoldierApplyInfoDO getByIdCardNoOfType(String idCardNo, String applyType);

    SoldierApplyInfoDO getByIdCardInfo(String idCardNo);

    SoldierApplyInfoDO getLastApplyOfSoldierId(String soldierId, String applyType);

    Integer countQrSuccessByAreaAndType(String areaLike, String applyType);

    Integer countQrSuccessByAreaAndTime(String adminAreaCode, Date beginDate, Date endDate);

    List<SoldierApplyInfoDO> getByIdCardAndAreaCode(String idCardNo,String areaCode);

    List<SoldierApplyInfoDO> getByMobile(String mobile);

    List<SoldierApplyInfoDO> getByHoldMobile(String mobile);

}
